From b0481811574fd95b96724e4be8fcc0e8d43727e9 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Fri, 31 Jul 2015 16:36:02 -0400 Subject: [PATCH] gtk-demo: Add a scale example --- demos/gtk-demo/Makefile.am | 1 + demos/gtk-demo/demo.gresource.xml | 4 + demos/gtk-demo/scale.c | 38 ++++++++ demos/gtk-demo/scale.ui | 143 ++++++++++++++++++++++++++++++ 4 files changed, 186 insertions(+) create mode 100644 demos/gtk-demo/scale.c create mode 100644 demos/gtk-demo/scale.ui diff --git a/demos/gtk-demo/Makefile.am b/demos/gtk-demo/Makefile.am index f89dd33c44..d85e7cab17 100644 --- a/demos/gtk-demo/Makefile.am +++ b/demos/gtk-demo/Makefile.am @@ -52,6 +52,7 @@ demos_base = \ printing.c \ revealer.c \ rotated_text.c \ + scale.c \ search_entry.c \ search_entry2.c \ sidebar.c \ diff --git a/demos/gtk-demo/demo.gresource.xml b/demos/gtk-demo/demo.gresource.xml index 6bdcdf76a3..70eb3b9bc7 100644 --- a/demos/gtk-demo/demo.gresource.xml +++ b/demos/gtk-demo/demo.gresource.xml @@ -159,6 +159,7 @@ printing.c revealer.c rotated_text.c + scale.c search_entry.c search_entry2.c sizegroup.c @@ -205,4 +206,7 @@ markup.txt + + scale.ui + diff --git a/demos/gtk-demo/scale.c b/demos/gtk-demo/scale.c new file mode 100644 index 0000000000..6f4d8d4f2c --- /dev/null +++ b/demos/gtk-demo/scale.c @@ -0,0 +1,38 @@ +/* Scale + * + * GtkScale is a way to select a value from a range. + * Scales can have marks to help pick special values, + * and they can also restrict the values that can be + * chosen. + */ + +#include + +GtkWidget * +do_scale (GtkWidget *do_widget) +{ + static GtkWidget *window = NULL; + + if (!window) + { + GtkBuilder *builder; + + builder = gtk_builder_new_from_resource ("/scale/scale.ui"); + gtk_builder_connect_signals (builder, NULL); + window = GTK_WIDGET (gtk_builder_get_object (builder, "window1")); + gtk_window_set_screen (GTK_WINDOW (window), + gtk_widget_get_screen (do_widget)); + g_signal_connect (window, "destroy", + G_CALLBACK (gtk_widget_destroyed), &window); + + g_object_unref (builder); + } + + if (!gtk_widget_get_visible (window)) + gtk_widget_show_all (window); + else + gtk_widget_destroy (window); + + + return window; +} diff --git a/demos/gtk-demo/scale.ui b/demos/gtk-demo/scale.ui new file mode 100644 index 0000000000..b09ce43751 --- /dev/null +++ b/demos/gtk-demo/scale.ui @@ -0,0 +1,143 @@ + + + + + 0 + 4 + 2 + + + 0 + 4 + 2 + + + 0 + 4 + 2 + + + False + Scales + 20 + + + True + False + 10 + 10 + + + True + Plain + 0 + fill + + + 0 + 0 + 1 + 1 + + + + + True + horizontal + True + 200 + False + adjustment1 + True + fill + + + 1 + 0 + 1 + 1 + + + + + True + Marks + 0 + fill + + + 0 + 1 + 1 + 1 + + + + + True + horizontal + True + 200 + False + adjustment2 + True + fill + + + + + + + + + + 1 + 1 + 1 + 1 + + + + + True + Discrete + 0 + fill + + + 0 + 2 + 1 + 1 + + + + + True + horizontal + True + 200 + 0 + False + adjustment3 + True + fill + + + + + + + + + + 1 + 2 + 1 + 1 + + + + + + -- 2.30.2